C++ STL 标准模板库精讲

📚 共计 30 章节
01
STL总览与核心概念
什么是STL · 六大组件 · 历史版本 · 为什么学习
概览组件
02
C++模板基础
函数模板 · 类模板 · 特化 · 元编程 · typename/class
模板泛型
03
迭代器入门
设计思想 · 分类(输入/输出/前向/双向/随机) · 失效问题
迭代器分类
04
string容器 (上)
构造/赋值 · 拼接/查找 · 替换/比较
string基础
05
string容器 (下)
子串 · 插入/删除 · C风格转换 · 内部实现
string进阶
06
vector容器 (上)
构造/赋值 · 容量/大小 · 插入/删除
vector动态数组
07
vector容器 (下)
访问/遍历 · reserve · shrink_to_fit · 迭代器失效
vector优化
08
deque容器
构造/操作 · 与vector区别 · 双端操作 · 内部原理
deque双端
09
list容器
构造/操作 · 迭代器 · 排序/去重 · splice · 对比vector
list链表
10
stack与queue容器适配器
stack/queue构造操作 · 适配器模式
适配器stackqueue
11
priority_queue优先队列
构造 · push/pop · 仿函数与优先级 · 堆实现
优先队列
12
set与multiset容器
构造/操作 · 自动排序 · 查找/统计 · multiset区别
set有序
13
map与multimap容器
构造/操作 · 插入方式 · 查找/统计 · multimap场景
map键值对
14
pair与tuple
pair构造/使用 · tuple操作 · 结构化绑定(C++17)
pairtuple
15
unordered系列容器 (上)
哈希表原理 · unordered_set/map · 自定义哈希
哈希unordered
16
unordered系列容器 (下)
unordered_multiset/map · 性能对比 · 负载因子/rehash
哈希性能
17
函数对象 (仿函数)
概念 · 预定义(less/greater) · 自定义 · lambda关系
仿函数lambda
18
算法概述与分类
只读/修改/排序/数值 · 算法与容器/迭代器配合
算法分类
19
只读算法
find · count · accumulate · equal · mismatch · for_each
只读查找
20
修改算法
copy · replace · fill · transform · remove · unique
修改复制
21
排序与相关算法
sort · stable_sort · partial_sort · nth_element · binary_search · lower_bound · upper_bound
排序二分
22
集合算法
set_union · set_intersection · set_difference · set_symmetric_difference
集合并交差
23
数值算法与生成算法
iota · accumulate(进阶) · inner_product · partial_sum · adjacent_difference
数值生成
24
适配器
容器适配器 · 迭代器适配器(reverse_iterator/back_insert) · 函数适配器(bind/negator)
适配器bind
25
分配器 (Allocator)
作用 · 默认分配器 · 自定义场景 · 内存池思想
分配器内存
26
STL的线程安全
容器安全级别 · 读写锁 · 并发陷阱 · lock_guard/unique_lock
线程安全
27
C++11/14/17对STL的增强
移动语义 · emplace · optional · variant · any
C++17现代
28
C++20对STL的增强
span · ranges库 · format · 协程交互
C++20ranges
29
STL性能优化与陷阱
避免拷贝 · reserve/shrink_to_fit · 迭代器失效总结 · 容器选择黄金法则
性能陷阱
30
综合实战:文本查询引擎
基于STL构建 · 单词统计 · 行号记录 · 逻辑查询
实战项目